Skip to content

QA: run_qa v1.6 form + ExplicitImports#60

Merged
ChrisRackauckas merged 1 commit into
SciML:mainfrom
ChrisRackauckas-Claude:qa-run_qa-v1.6-explicit-imports
Jun 27, 2026
Merged

QA: run_qa v1.6 form + ExplicitImports#60
ChrisRackauckas merged 1 commit into
SciML:mainfrom
ChrisRackauckas-Claude:qa-run_qa-v1.6-explicit-imports

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Contributor

Please ignore until reviewed by @ChrisRackauckas.

Brings this repo onto the SciMLTesting 1.6.0 run_qa v1.6 form with ExplicitImports enabled, as a dedicated test/qa QA group wired via the run_tests folder model (qa = (; env, body) in test/runtests.jl + [QA] in test/test_groups.toml).

There was no prior run_qa-based QA group (and no Aqua at all). The pre-existing test/nopre/jet_tests.jl group does call-site type-stability checks (@test_opt / report_call) under precompile-disabled mode — a distinct concern from package-level QA — and is left untouched.

QA group contents

  • Aqua (Aqua.test_all) — all sub-checks pass; no aqua_broken, no kwarg tweaks.
  • JET — auto-detected via using JET; test_package mode :typo, clean (0 reports). No jet_broken.
  • ExplicitImports (explicit_imports = true) — all six checks.

ExplicitImports findings (all resolved; 0 hard FAIL, 0 BROKEN)

  • no_implicit_imports (4 names) — FIXED in src/: made the four implicit names explicit:

    • using FunctionWrappers: FunctionWrappers (module used qualified as FunctionWrappers.FunctionWrapper)
    • using PrecompileTools: @compile_workload, @setup_workload (only the two macros are used)
  • all_qualified_accesses_are_public (3 names) — IGNORED via ei_kwargs (other packages /. Base non-public names, documented in qa.jl):

    • Base.tail
    • FunctionWrappers.FunctionWrapper
    • TruncatedStacktraces.@truncate_stacktrace

    All long-standing core API of those modules that predates the public keyword; drop the ignore once they mark them public.

  • no_stale_explicit_imports, all_explicit_imports_via_owners, all_qualified_accesses_via_owners, all_explicit_imports_are_public — pass unmodified.

No ei_broken and no tracking issue needed: every finding was either fixed in source or is an ignore of another package's non-public name.

Dependency changes

  • PrecompileTools floor 11.1: src now explicit-imports only PrecompileTools' macros; the floor must be the first self-contained-macro release or the Downgrade lane hits UndefVarError on the bare module name. Verified: package loads + precompiles at PrecompileTools 1.1.0.
  • Test = "1" added to root [compat]: Aqua deps_compat (check_extras) flagged Test in [extras] having no compat bound (pre-existing latent issue). FIXED rather than disabling the sub-check.
  • test/qa/Project.toml: SciMLTesting [compat] pinned to "1.6"; ExplicitImports NOT listed (transitive via SciMLTesting); Aqua + JET kept as direct deps.

Verification (local, vs released SciMLTesting 1.6.0 — no dev-from-branch)

  • QA group: 18/18 pass, 0 fail / 0 error / 0 broken on Julia 1.10 (lts) and 1.11.
  • Core group: 58/58 pass (51 + 7).
  • Downgrade floors (PrecompileTools 1.1.0, FunctionWrappers 1.1.2, TruncatedStacktraces 1.1.0): loads, precompiles, and runs.

🤖 Generated with Claude Code

Add a `test/qa` QA group built on SciMLTesting 1.6.0's `run_qa`, wired via
the run_tests folder model (qa = (; env, body) + [QA] in test_groups.toml).
The group runs Aqua (test_all), JET (auto-detected via `using JET`,
test_package mode :typo), and the six ExplicitImports checks.

ExplicitImports findings (explicit_imports = true), all resolved to 0 hard
fail / 0 broken:
- no_implicit_imports: made the four implicit names explicit in src —
  `using FunctionWrappers: FunctionWrappers` and
  `using PrecompileTools: @compile_workload, @setup_workload`.
- all_qualified_accesses_are_public: ignore `Base.tail`,
  `FunctionWrappers.FunctionWrapper`, and
  `TruncatedStacktraces.@truncate_stacktrace` — long-standing core API of
  those modules that predates the `public` keyword.
- the other four EI checks pass unmodified.

Because src now explicit-imports only PrecompileTools' macros, bump the
PrecompileTools compat floor to 1.1 (first self-contained-macro release) so
the downgrade lane does not hit an UndefVarError on the bare module name.

Aqua deps_compat surfaced a missing `Test` compat entry (Test is in
[extras] without a [compat] bound); add `Test = "1"` to the root [compat].

Verified locally against released SciMLTesting 1.6.0 (no dev-from-branch):
QA group 18/18 pass on Julia 1.10 (lts) and 1.11; Core 58/58; package loads
and precompiles at the downgrade floors (PrecompileTools 1.1.0,
FunctionWrappers 1.1.2, TruncatedStacktraces 1.1.0).

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ChrisRackauckas ChrisRackauckas marked this pull request as ready for review June 27, 2026 13:05
@ChrisRackauckas ChrisRackauckas merged commit 66c60cf into SciML:main Jun 27, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants